package com.seari.custody.mapper;

import com.seari.custody.bean.Meeting;
import com.seari.custody.bean.MeetingExample;
import com.seari.custody.bean.OAMeetingInfo;
import com.seari.custody.bean.PersonMeetingDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface MeetingMapper {
    /**
     * @param id 会议管理——会议id
     * @return 会议管理-会议信息
     */
    Meeting selectCzHrtableById(String id);

    /**
     * 查询会议信息——会议信息列表
     *
     * @return 会议信息集合
     */
    List<PersonMeetingDTO> getMeetingByMpid(String userNumber, Date startTime, Date endTime);

    /**
     * 通过id查询 开始时间大于当前系统时间
     *
     * @param ids
     * @return
     */
    List<Meeting> selectMeetingsByIdsWithGtTimeNow(@Param("ids") List<String> ids);


    /**
     * 单个删除-会议信息
     *
     * @param id 会议信息-会议id
     * @return结果
     */
    //删除会议
    Integer deleteMeeting(String id, String userNumber);

    /**
     * 批量删除-会议信息
     *
     * @return 结果
     */
    Integer deleteMeetingIds(@Param("ids") String[] ids, String userNumber);

    /**
     * 获取会议时间地点
     *
     * @param date
     * @return
     */
    List<OAMeetingInfo> getMeetingsInfoByDate(String date);

    long countByExample(MeetingExample example);

    int deleteByExample(MeetingExample example);

    int deleteByPrimaryKey(String id);

    int insert(Meeting record);

    int insertSelective(Meeting record);

    List<Meeting> selectByExample(MeetingExample example);

    Meeting selectByPrimaryKey(String id);

    int updateByExampleSelective(@Param("record") Meeting record, @Param("example") MeetingExample example);

    int updateByExample(@Param("record") Meeting record, @Param("example") MeetingExample example);

    int updateByPrimaryKeySelective(Meeting record);

    int updateByPrimaryKey(Meeting record);

    /**
     * 这是Mybatis Generator拓展插件生成的方法(请勿删除).
     * This method corresponds to the database table meeting
     *
     * @mbg.generated
     * @author hewei
     */
    int batchInsert(@Param("list") List<Meeting> list);
}